﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;

namespace dacli.modelos.dao
{
    public class OpcionesElementosDAO : EntidadDao
    {
        public modelos.OpcionesElementos OpcionesElementos;
        public modelos.OpcionesElementos asignarId(long id)
        {
            this.consultar("id=" + id);
            return this.OpcionesElementos;
        }

        public OpcionesElementosDAO()
            : base("opciones_elementos")
        {

        }

        public override long incluir()
        {
            string sql = "INSERT INTO " + this.tabla + " (nombre, elementos_categoria_id) values" +
            "('" + OpcionesElementos.nombre + "','" + OpcionesElementos.elementosCategoria.id + "')";
            return conexion.ejecutar(sql);

        }

        public override long modificar()
        {
            string sql = "UPDATE " + this.tabla + " SET "
            + "nombre ='" + OpcionesElementos.nombre + "', "
            + "elementos_categoria_id ='" + OpcionesElementos.elementosCategoria.id + "' "
            + "WHERE id =" + OpcionesElementos.id;
            return conexion.ejecutar(sql);            
        }

        public override long eliminar()
        {
            string sql = "DELETE FROM " + this.tabla + " WHERE "
            + "id =" + OpcionesElementos.id;
            return conexion.ejecutar(sql);            
        }

        public override bool consultar(string filtro)
        {
            string sql = "SELECT * FROM " + this.tabla + " WHERE "
            + filtro;
            SqlDataReader reader = conexion.consultar(sql);
            if (reader.Read()) {
                this.OpcionesElementos = new OpcionesElementos();
                this.OpcionesElementos.id = reader.GetInt32(0);
                this.OpcionesElementos.nombre = reader.GetValue(1).ToString();
                this.OpcionesElementos.elementosCategoria = new ElementosCategoriaDAO().asignarId(reader.GetInt32(2));
                reader.Close();
                return true;
            }
            return false;
        }    
    }
}
